﻿// --------------------------------------------------------------------------------------------------------------------
// <copyright file="FilterProperty.cs" company="ScRePt">
//   Copyright © ScRePt 2010 - 2012
// </copyright>
// <summary>
//   The filter property.
// </summary>
// --------------------------------------------------------------------------------------------------------------------

namespace MP3D.Configuration
{
    #region Using Directives

    using System;
    using System.Xml.Serialization;

    #endregion

    /// <summary>
    /// The filter property.
    /// </summary>
    [Serializable]
    [XmlInclude(typeof(FilterPropertyEnum))]
    public class FilterProperty
    {
        #region Enums

        /// <summary>
        /// The filter property types.
        /// </summary>
        public enum FilterPropertyTypes
        {
            /// <summary>
            /// The enumeration.
            /// </summary>
            Enumeration = 1, 

            /// <summary>
            /// The integer.
            /// </summary>
            Integer = 2, 

            /// <summary>
            /// The boolean.
            /// </summary>
            Boolean = 3
        }

        #endregion

        #region Properties

        /// <summary>
        /// Gets or sets a value indicating whether CanSave.
        /// </summary>
        [XmlAttribute]
        public bool CanSave { get; set; }

        /// <summary>
        /// Gets or sets Id.
        /// </summary>
        [XmlAttribute]
        public int Id { get; set; }

        /// <summary>
        /// Gets or sets Name.
        /// </summary>
        [XmlAttribute]
        public string Name { get; set; }

        /// <summary>
        /// Gets or sets PropertyType.
        /// </summary>
        [XmlAttribute]
        public FilterPropertyTypes PropertyType { get; set; }

        /// <summary>
        /// Gets or sets StereoscopicFilterPropertyId.
        /// </summary>
        [XmlAttribute]
        public int StereoscopicFilterPropertyId { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether Supported.
        /// </summary>
        [XmlAttribute]
        public bool Supported { get; set; }

        #endregion

        #region Public Methods

        /// <summary>
        /// The to string.
        /// </summary>
        /// <returns>
        /// The to string.
        /// </returns>
        public override string ToString()
        {
            return this.Name;
        }

        #endregion
    }
}